﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using L = Science.Mathematics.LinearAlgebra;

namespace Strang3Ed.Chapter03.Section4
{
    public class Example01
    {
        public Example01()
		{
		}
		private string result;
		public string Result
		{
			get{return result;}
		}
        public void Compute()
        {
  /*          double[,] x = { { 1.0, 3.0, 0.0, 2.0}, 
                            { 0.0, 0.0, 1.0, 4.0},
                            { 1.0, 3.0, 1.0, 6.0}};

            L.Matrix A = new L.Matrix(x);

            double[] y = { 1.0, 6.0, 7.0 };

            L.Vector b = new L.Vector(y);  */

            double[,] x = { { 1.0, 1.0}, 
                            { 1.0, 2.0},
                            { -2.0, -3.0}};

            L.Matrix A = new L.Matrix(x);

            double[] y = { 1.0, 6.0, -7.0 };

            L.Vector b = new L.Vector(y);

            L.LinearEquationGeneral eq = new L.LinearEquationGeneral(A, b);
            eq.Solve();
            
            result += eq.ParticularSolution.ToString()+"\r\n";
            result += eq.SpecialSolution.ToString();
            foreach (int k in eq.FreeVariable) result += k.ToString() + "   ";
        }
    }
}
/*
1     0     6     0     

-3     -2     
1     0     
0     -4     
0     1     

1   3   ////

-4     5     

0     
0   
*/
